home *** CD-ROM | disk | FTP | other *** search
- 10 rem version 1.1: lines 830,950 modified, lines 485-487 added
- 100 poke 56,50:clr:dim in$,i,j,a,b,a$,b$,a(7),n$
- 110 c4=48:c6=16:c7=7:z2=2:z4=254:z5=255:z6=256:z7=127
- 120 fa=peek(45)+z6*peek(46):bs=peek(55)+z6*peek(56):h$="0123456789abcdef"
- 130 r$=chr$(13):l$="":s$=" ":d$=chr$(20):z$=chr$(0):t$=""
- 140 sd=54272:for i=sd to sd+23:poke i,0:next:poke sd+24,15:poke 788,52
- 150 print""chr$(142)chr$(8):poke 53280,15:poke 53281,15
- 160 print t$" {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@} "spc(28)" mlx ii "spc(28)" "
- 170 print" compute!'s machine language editor"
- 180 print"starting address";:gosub300:sa=ad:gosub1040:if f then180
- 190 print" ending address";:gosub300:ea=ad:gosub1030:if f then190
- 200 input"clear workspace [y/n]";a$:if left$(a$,1)<>"y"then220
- 210 print"working...";:fori=bs to bs+ea-sa+7:poke i,0:next:print"done"
- 220 printtab(10)" mlx command menu ":print t$"enter data"
- 230 print t$"display data":print t$"load file"
- 240 print t$"save file":print t$"quit"
- 250 get a$:if a$=n$ then250
- 260 a=0:for i=1 to 5:if a$=mid$("edlsq",i,1)then a=i:i=5
- 270 next:on a goto420,610,690,700,280:gosub1060:goto250
- 280 print" quit ":input"are you sure [y/n]";a$:if left$(a$,1)<>"y"then220
- 290 poke sd+24,0:end
- 300 in$=n$:ad=0:inputin$:iflen(in$)<>4thenreturn
- 310 b$=in$:gosub320:ad=a:b$=mid$(in$,3):gosub320:ad=ad*256+a:return
- 320 a=0:for j=1 to 2:a$=mid$(b$,j,1):b=asc(a$)-c4+(a$>"@")*c7:a=a*c6+b
- 330 if b<0 or b>15 then ad=0:a=-1:j=2
- 340 next:return
- 350 b=int(a/c6):print mid$(h$,b+1,1);:b=a-b*c6:print mid$(h$,b+1,1);:return
- 360 a=int(ad/z6):gosub350:a=ad-a*z6:gosub350:print":";
- 370 ck=int(ad/z6):ck=ad-z4*ck+z5*(ck>z7):goto390
- 380 ck=ck*z2+z5*(ck>z7)+a
- 390 ck=ck+z5*(ck>z5):return
- 400 print"starting at";:gosub300:if in$<>n$ then gosub1030:if f then400
- 410 return
- 420 print" enter data ":gosub400:if in$=n$ then220
- 430 open3,3:print
- 440 poke198,0:gosub360:if f then print in$:print"";
- 450 for i=0 to 24 step 3:b$=s$:for j=1 to 2:if f then b$=mid$(in$,i+j,1)
- 460 print""b$l$;:if i<24then print"";
- 470 get a$:if a$=n$ then470
- 480 if(a$>"/"anda$<":")or(a$>"@"anda$<"g")then540
- 485 a=-(a$="m")-2*(a$=",")-3*(a$=".")-4*(a$="/")-5*(a$="j")-6*(a$="k")
- 486 a=a-7*(a$="l")-8*(a$=":")-9*(a$="u")-10*(a$="i")-11*(a$="o")-12*(a$="p")
- 487 a=a-13*(a$=s$):if a then a$=mid$("abcd123e456f0",a,1):goto 540
- 490 if a$=r$ and((i=0)and(j=1)or f)then print b$;:j=2:next:i=24:goto550
- 500 if a$="" then print b$:j=2:next:i=24:next:f=0:goto440
- 510 if(a$="")andf thenprint b$l$;:goto540
- 520 if a$<>l$ and a$<>d$ or((i=0)and(j=1))then gosub1060:goto470
- 530 a$=l$+s$+l$:print b$l$;:j=2-j:if j then print l$;:i=i-3
- 540 print a$;:next j:print s$;
- 550 next i:print:print"";:input#3,in$:if in$=n$ then close3:goto220
- 560 for i=1 to 25 step3:b$=mid$(in$,i):gosub320:if i<25 then gosub380:a(i/3)=a
- 570 next:if a<>ck then gosub1060:print" error: reenter line ":f=1:goto440
- 580 gosub1080:b=bs+ad-sa:for i=0 to 7:poke b+i,a(i):next
- 590 ad=ad+8:if ad>ea then close3:print"** end of entry **":goto700
- 600 f=0:goto440
- 610 print" display data ":gosub400:if in$=n$ then220
- 620 print"press: space to pause, return to break"
- 630 gosub360:b=bs+ad-sa:fori=bto b+7:a=peek(i):gosub350:gosub380:print s$;
- 640 next:print"";:a=ck:gosub350:print
- 650 f=1:ad=ad+8:if ad>ea thenprint"** end of data **":goto220
- 660 get a$:if a$=r$ then gosub1080:goto220
- 670 if a$=s$ then f=f+1:gosub1080
- 680 onfgoto630,660,630
- 690 print" load data ":op=1:goto710
- 700 print" save file ":op=0
- 710 in$=n$:input"filename";in$:if in$=n$ then220
- 720 f=0:print"tape or disk: ";
- 730 get a$:if a$="t"then print"t":goto880
- 740 if a$<>"d"then730
- 750 print"d":open15,8,15,"k
- ~PP~~{$f6}~~~R{SHIFT--}
- P
- {$f0}R{SHIFT--}
-
- 7
- P{$ef}{$f5}
- ~
- 61442 1
- ***error******error***
- ***error***
-